package com.sxj.corejava.code08_常用类.String类;

import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2025年01月10日
 */
public class Test03_练习 {

    private static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        test03();
    }

    /**
     * 控制台输入一个字符串,将字符串中所有字符颠倒过来,例如:字符串Hello World转换成dlroW olleH
     */
    public static void test01() {
        System.out.print("请输入一个字符串:");
        String s = sc.nextLine();
        String result = "";
        for (int i = s.length() - 1; i >= 0; i--) {
            result += s.charAt(i);
        }
        System.out.println(result);
    }

    /**
     * 控制台输入一个字符串,修改字符串格式,例如:字符串Hello World转换为WROLD_HELLO
     */
    public static void test02() {
        System.out.print("请输入一个字符串:");
        String s = sc.nextLine();
        // 将字符串通过空格分隔成数组
        String[] arr = s.split(" ");
        String result = "";
        for (int i = arr.length - 1; i >= 0; i--) {
            result += arr[i] + "_";
        }
        // 截取字符串,将末尾的字符去除
        result = result.substring(0, result.length() - 1).toUpperCase();
        System.out.println(result);
    }

    /**
     * 在控制台输入任意一个字符串,将字符串每4个字符后添加一个短横线‐,并将所有大写字母变成小写字母,小写变成大写字母
     */
    public static void test03() {
        System.out.print("请输入一个字符串:");
        String s = sc.nextLine();
        String result = "";
        // 将大写字母转换小写,小写转大写
        for (int i = 0; i < s.length(); i++) {
            // 取出当前迭代的字符
            char c = s.charAt(i);
            // 判断当前字符是否是大写字母,如果是转小写
            if (c >= 'A' && c <= 'Z') {
                result += (c + "").toLowerCase();
            } else if (c >= 'a' && c <= 'z') {
                // 判断当前字符是否是小写字母,如果是转大写
                result += (c + "").toUpperCase();
            } else {
                // 其他不变
                result += c;
            }
            // 每四个字符添加一个-,且末尾不需要添加
            if ((i + 1) % 4 == 0 && i != s.length() - 1) {
                result += "-";
            }
        }
        System.out.println(result);
    }

}
